import java.sql.SQLOutput;

/**
 * @author zhangshuai
 * @version V1.0
 * @Project Java2_26
 * @Package PACKAGE_NAME
 * @Description:
 * @Date 2025/5/14 16:25
 */

public class StaticTest {
    /*static:
     * 	1： static 是java的关键字。
     * 	2：静态的意思。
     * 	3：static 是用来修饰类成员的
     * 		1：可以修饰类中的成员变量-->静态成员成员边量。
     * 		2：修饰类中的成员方法-->静态成员方法。
     * 		3：修饰静态代码块
     *
     * 	4：静态成员变量的特点：
     * 		1：静态成员变量的内存空间只有一份。
     * 		2：静态成员变量的内存空间不依赖于任何对象。
     * 		3：静态成员变量的内存空间在方法区。
     * 		4：静态成员变量的内存空间依赖于所在的类，当类加载的时候给所有的静态成员变量分配内存。
     * 			任何一个类只加载一次。静态成员变量分配内存也只有一次。
     * 		5：静态成员变量除了可以通过对象访问之外，还可以通过类名直接访问。而且【建议通过类名来访问静态变量】。*/

    //修饰成员变量
    static int age = 20;
    //修饰方法
    static void play(){
        System.out.println("玩");
    }
    //修饰静态代码块
    static {
        System.out.println("修饰静态代码块");
    }
    //静态内部类
    static class builder{
        private String name;
        public void eat(){
            System.out.println("修饰静态内部类");
        }
    }
    //静态方法
    public static void main(String[] args) {
        //静态变量，静态方法都可以用类名.变量，类名.方法拿到数据

      /*  System.out.println(StaticTest.age);
        StaticTest.play();*/
        StaticTest staticTest = new StaticTest();
        System.out.println(staticTest.age);
        staticTest.play();
        //静态内部类     结构更加鲜明
        new StaticTest.builder().eat();

    }
}